(C) 1996 AROS - The Amiga Replacement OS


NAME
#include <proto/exec.h>
void CacheClearE()
SYNOPSIS
APTR address
ULONG length
ULONG caches

LOCATION
In SysBase at offset 107
FUNCTION
Flush the contents of the CPU instruction or data caches. If some of the cache contains dirty data, push it to memory first.

For most systems DMA will not effect processor caches. If *any* external (non-processor) event changes system memory, you MUST clear the cache. For example:

DMA Code relocation to run at a different address Building jump tables Loading code from disk

INPUTS
address
Address to start the operation. This address may be rounded DOWN due to hardware granularity.
length
Length of the memory to flush. This will be rounded up, of $FFFFFFFF to indicate that all addresses should be cleared.
caches
Bit flags to indicate which caches should be cleared
CACRF_ClearI
Clear the instruction cache
CACRF_ClearD
Clear the data cache All other bits are reserved.
RESULT
The caches will be flushed.

NOTES
It is possible that on some systems the entire cache will be even if this was not the specific request.

EXAMPLE
BUGS
SEE ALSO
CacheClearE(), CacheControl()
INTERNALS
This is a rather CPU dependant function. You should replace it in your $(KERNEL).

HISTORY
05.08.1997 iaint
Kernel Changes - These are mostly functions which are normally implemented by the kernel, but might not be.